package com.scu.dao;


import com.scu.pojo.*;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface TopicDao {

    //    根据b_id或u_id获取相应的帖子
    List<Topic> getTopicList(@Param("topic") Topic topic);

    //获取帖子以及帖子回复
    List<Topic> getTopicCommentList(@Param("topic") Topic topic);

    //分页获取帖子信息 + 分页获取精华帖
    List<Topic> getTopicListByPage(@Param("index")int index, @Param("limit")int limit,
                                   @Param("topic") Topic topic);

    //分页获取精华帖
//    List<Topic> getEliteTopicListByPage(@Param("index")int index, @Param("limit")int limit,
//                                        @Param("topic") Topic topic);
//
    //获取我的帖子
    List<Topic> getMyTopicList(@Param("topic") Topic topic);

    //分页获取我的帖子
    List<Topic> getMyTopicListByPage(@Param("index")int index, @Param("limit")int limit,
                                     @Param("topic") Topic topic);

    //获取我的收藏  要连表查，好像和上面的合不起来
    List<Topic> getMyCollectionTopicList(@Param("topic") Topic topic);

    //分页获取我的收藏  要连表查，好像和上面的合不起来
    List<Topic> getMyCollectionTopicListByPage(@Param("index")int index, @Param("limit")int limit,
                                               @Param("topic") Topic topic);

    //    获取当前帖子评论数
    int getCommentNum(@Param("topic") Topic topic);

    //评论数加一
    int addCommentNum(@Param("t_id") String t_id);

    //评论数减一
    int subCommentNum(@Param("c_id") String c_id);

    // 增加帖子
    int postTopic(@Param("topic") Topic topic);

    //    修改帖子信息
    int redactTopic(@Param("topic") Topic topic);

    //获取发帖最多的用户
    List<User> getPostMostUser();

    // 修改帖子状态  删除/置顶/加精/封闭
    int alterStatusTopic(@Param("topic") Topic topic);


    //举报帖子
    int informTopic(@Param("report")Report report);

    //检查用户是否收藏该贴
    List<String> checkCollectTopic(@Param("CollectionTopic") CollectionTopic CollectionTopic);

    //收藏帖子
    int collectTopic(@Param("collectionTopic") CollectionTopic collectionTopic);

    //取消收藏
    int deleteCollectionTopic(@Param("CollectionTopic") CollectionTopic CollectionTopic);

    //根据t_id找到所属b_id
    String findB_idByT_id(String t_id);

    List<Topic> getTopicByID(@Param("t_id")int t_id);

}
